package main

import "fmt"

// 声明一个接口
type Usb interface {
	Start()
	Stop()
}

type Phone struct {

}

type Camera struct {

}

type Computer struct {

}

func (p Phone) Start() {
	fmt.Println("手机开始工作...")
}

func (p Phone) Stop() {
	fmt.Println("手机停止工作...")
}

func (c Camera) Start() {
	fmt.Println("相机开始工作...")
}

func (c Camera) Stop() {
	fmt.Println("相机停止工作...")
}

// 编写一个Working方法，接收一个Usb接口类型变量
// 只要是实现了Usb接口，所谓实现Usb接口，就是指实现了Usb接口声明的所有方法
func (c Computer) Working(usb Usb) {
	usb.Start()
	usb.Stop()
}

func main() {
	computer := Computer{}
	phone := Phone{}
	camera := Camera{}

	computer.Working(phone)
	computer.Working(camera)
}